<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:c="http://java.sun.com/jsp/jstl/core">
  <h:body>
    <ui:composition template="/template/base.xhtml">
      <ui:define name="content">
        <h:form id="articulo-form">
          <p:growl id="growl" showDetail="true" sticky="true" />
          <p:spacer />

          <p:panel header="Lista de articulos registrados">
            <p:dataTable id="dtArticulo" var="articulo"
                         value="#{articuloBean.articulos}" rows="10" paginator="true"
                         paginatorPosition="bottom"
                         paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                         rowsPerPageTemplate="5,10,15"
                         selection="#{articuloBean.articuloSelected}"
                         rowKey="#{articulo.id}" selectionMode="single"
                         emptyMessage="No se registraron articulos">

              <p:ajax event="rowSelect" listener="#{articuloBean.onRowSelect}" />

              <p:column headerText="ID">
                <h:outputText value="#{articulo.id}" />
              </p:column>
              <p:column headerText="Descripcion">
                <h:outputText value="#{articulo.descripcion}" />
              </p:column>
              <p:column headerText="PrecioAdquisicion">
                <h:outputText value="#{articulo.precioAdquisicion}" />
              </p:column>
              <p:column headerText="PrecioVenta">
                <h:outputText value="#{articulo.precioVenta}" />
              </p:column>
              <p:column headerText="Existencia">
                <h:outputText value="#{articulo.existencia}" />
              </p:column>
              <p:column headerText="Proveedor">
                <h:outputText value="#{articulo.proveedor.razonSocial}" />
              </p:column>
              <p:column headerText="Sector">
                <h:outputText value="#{articulo.sector}" />
              </p:column>
              <p:column headerText="TipoArticulo">
                <h:outputText value="#{articulo.tipoArticulo.descripcion}" />
              </p:column>

              <f:facet name="footer">
                <p:commandButton process="dtArticulo" icon="ui-icon-document"
                                 value="Agregar" oncomplete="PF('dlgArticuloAdd').show()" />
                <p:commandButton process="dtArticulo" icon="ui-icon-pencil"
                                 value="Editar" oncomplete="PF('dlgArticuloEdit').show()"
                                 update=":form-edit:pnlGridArticulo"
                                 disabled="#{articuloBean.bloquearBotones}" />
                <p:commandButton process="dtArticulo" icon="ui-icon-trash"
                                 value="Borrar" actionListener="#{articuloBean.deleteArticulo}"
                                 update="dtArticulo" disabled="#{articuloBean.bloquearBotones}">
                  <p:confirm header="Borrar Articulo"
                             message="Estas seguro que queres borrar?" icon="ui-icon-alert" />
                </p:commandButton>
              </f:facet>
            </p:dataTable>
          </p:panel>

          <p:confirmDialog global="true" showEffect="fade"
                           hideEffect="explode">
            <p:commandButton value="Si" type="button"
                             styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
            <p:commandButton value="No" type="button"
                             styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
          </p:confirmDialog>

        </h:form>
        <p:dialog header="Agregar Articulo" id="dglArticuloAdd"
                  widgetVar="dlgArticuloAdd" modal="true">
          <h:form id="form-add">
            <p:panelGrid columns="2">
              <p:column>
                <p:outputLabel value="Ingrese los datos"/>
                <p:panelGrid columns="2" columnClasses="column"
                             id="pnlGridArticulo">

                  <p:outputLabel value="Descripcion" for="descripcion" />
                  <p:inputText id="descripcion" required="true"
                               value="#{articuloBean.descripcion}" />

                  <p:outputLabel value="PrecioAdquisicion" for="precioAdquisicion" />
                  <p:inputText id="precioAdquisicion" required="true"
                               value="#{articuloBean.precioAdquisicion}" />

                  <p:outputLabel value="PrecioVenta" for="precioVenta" />
                  <p:inputText id="precioVenta" required="true"
                               value="#{articuloBean.precioVenta}" />

                  <p:outputLabel value="Existencia" for="existencia" />
                  <p:inputText id="existencia" required="true"
                               value="#{articuloBean.existencia}" />

                  <p:outputLabel value="Sector" for="sector" />
                  <p:selectOneRadio id="sector" 
                                    required="true"
                                    requiredMessage="El campo sector es obligatorio"
                                    value="#{articuloBean.sector}">
                    <f:selectItem itemLabel="Cantina" itemValue="CANTINA" />
                    <f:selectItem itemLabel="Libreria" itemValue="LIBRERIA" />
                  </p:selectOneRadio>

                  <p:outputLabel value="TipoArticulo" for="tipoArticulo" />
                  <p:selectOneMenu id="tipoArticulo"
                                   value="#{articuloBean.tipoArticulo}"
                                   converter="tipoArticuloConverter">
                    <c:forEach var="tipoArticulo"
                               items="#{tipoArticuloBean.tipoArticulos}">
                      <f:selectItem itemValue="#{tipoArticulo}"
                                    itemLabel="#{tipoArticulo.descripcion}" />
                    </c:forEach>
                  </p:selectOneMenu>
                </p:panelGrid>
              </p:column>
              <p:column>
                <p:outputLabel value="Seleccione el Proveedor"/>
                <p:dataTable id="dtProveedoresSel" var="proveedor"
                             value="#{proveedorBean.proveedores}" rows="10" paginator="true"
                             paginatorPosition="bottom"
                             paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                             rowsPerPageTemplate="5,10,15"
                             selection="#{articuloBean.proveedorSelected}" rowKey="#{proveedor}"
                             converter="proveedorConverter" style="margin-bottom:0">
                  <p:column selectionMode="single"
                            style="width:16px;text-align:center" />
                  <p:column headerText="Id">
                    <h:outputText value="#{proveedor.id}" />
                  </p:column>
                  <p:column headerText="RazonSocial">
                    <h:outputText value="#{proveedor.razonSocial}" />
                  </p:column>
                  <p:column headerText="RUC">
                    <h:outputText value="#{proveedor.ruc}" />
                  </p:column>
                  <p:column headerText="Telefono">
                    <h:outputText value="#{proveedor.telefono}" />
                  </p:column>
                  <p:column headerText="Direccion">
                    <h:outputText value="#{proveedor.direccion}" />
                  </p:column>               
                </p:dataTable>
              </p:column>
            </p:panelGrid>
            <p:panel style="alignment-adjust: central">
              <p:commandButton process="dtProveedoresSel"
                               value="Guardar Articulo" action="#{articuloBean.saveArticulo}"
                               style="text-align:center; float:center"
                               onclick="PdlgProveedor.hide();" oncomplete=""
                               update=":articulo-form:dtArticulo,:articulo-form:growl" />
            </p:panel>
          </h:form>
        </p:dialog>

        <p:dialog header="Articulo seleccionado" id="PdglArticuloEdit"
                  widgetVar="dlgArticuloEdit" modal="true">
          <h:form id="form-edit">
            <p:panelGrid columns="2">
              <p:column>
                <p:outputLabel value="Ingrese los datos"/>
                <p:panelGrid columns="2" columnClasses="column"
                             id="pnlGridArticulo">

                  <p:outputLabel value="Descripcion" for="descripcion" />
                  <p:autoComplete id="descripcion" required="true"
                                  value="#{articuloBean.descripcion}" />

                  <p:outputLabel value="PrecioAdquisicion" for="precioAdquisicion" />
                  <p:autoComplete id="precioAdquisicion" required="true"
                                  value="#{articuloBean.precioAdquisicion}" />

                  <p:outputLabel value="PrecioVenta" for="precioVenta" />
                  <p:autoComplete id="precioVenta" required="true"
                                  value="#{articuloBean.precioVenta}" />

                  <p:outputLabel value="Existencia" for="existencia" />
                  <p:autoComplete id="existencia" required="true"
                                  value="#{articuloBean.existencia}" />	

                  <p:outputLabel value="Sector" for="sector" />
                  <p:selectOneRadio id="sector"
                                    value="#{articuloBean.sector}">
                    <f:selectItem itemLabel="Articulo" itemValue="CANTINA" />
                    <f:selectItem itemLabel="Libreria" itemValue="LIBRERIA" />
                  </p:selectOneRadio>

                  <p:outputLabel value="TipoArticulo" for="tipoArticulo" />
                  <p:selectOneMenu id="tipoArticulo"
                                   value="#{articuloBean.tipoArticulo}"
                                   converter="tipoArticuloConverter">
                    <c:forEach var="tipoArticulo"
                               items="#{tipoArticuloBean.tipoArticulos}">
                      <f:selectItem itemValue="#{tipoArticulo}"
                                    itemLabel="#{tipoArticulo.descripcion}" />
                    </c:forEach>
                  </p:selectOneMenu>
                </p:panelGrid>
              </p:column>
              <p:column>
                <p:outputLabel value="Seleccione el Proveedor"/>
                <p:dataTable id="dtProvArticulo" var="proveedor"
                             value="#{proveedorBean.proveedores}" rows="10" paginator="true"
                             paginatorPosition="bottom"
                             paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                             rowsPerPageTemplate="5,10,15"
                             selection="#{articuloBean.proveedorSelected}"
                             rowKey="#{proveedor}" converter="proveedorConverter">

                  <p:column selectionMode="single"
                            style="width:16px;text-align:center" />

                  <p:column headerText="Id">
                    <h:outputText value="#{proveedor.id}" />
                  </p:column>
                  <p:column headerText="RazonSocial">
                    <h:outputText value="#{proveedor.razonSocial}" />
                  </p:column>
                  <p:column headerText="RUC">
                    <h:outputText value="#{proveedor.ruc}" />
                  </p:column>
                  <p:column headerText="Telefono">
                    <h:outputText value="#{proveedor.telefono}" />
                  </p:column>
                  <p:column headerText="Direccion">
                    <h:outputText value="#{proveedor.direccion}" />
                  </p:column>						
                </p:dataTable>
              </p:column>
            </p:panelGrid>
            <p:panel style="alignment-adjust: central">
              <p:commandButton process="dtProvArticulo" value="Actualizar"
                               action="#{articuloBean.editArticulo}"
                               style="text-align:center; float:center"
                               onclick="dlgProveedor.hide();" oncomplete=""
                               update=":articulo-form:dtArticulo,:articulo-form:growl" />
            </p:panel>
          </h:form>
        </p:dialog>
      </ui:define>
    </ui:composition>
  </h:body>
</html>
